home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / MiscKit1.7.1 / MiscKit / Source / MiscGISKit / MiscIrelandOldUTMCoord.m < prev    next >
Text File  |  1995-07-20  |  3KB  |  97 lines

  1. /*======================== MiscIrelandOldUTMCoord.m =========================*/
  2. /* MiscIrelandOldUTMCoord class contains and supports values representing
  3.    locations in an Irish Universal Transverse Mercator coordinate system
  4.    using the airy constants of 1953.
  5.  
  6.    DMA Release 0.8, Copyright @1993 by Genesis Project, Ltd. All Rights
  7.    Reserved. For further information on terms and conditions see:
  8.         Documentation/GISKit/Agreements-Legal-README
  9.  
  10. HISTORY
  11. 26-Mar-93  Dale Amon at GPL
  12.        Subsumed IrishGridOldUTMConstants class into this one.
  13.  
  14. 21-Mar-93  Dale Amon at GPL
  15.        Created.
  16. */
  17.  
  18. #import <misckit/miscgiskit.h>
  19.  
  20. @implementation MiscIrelandOldUTMCoord
  21.  
  22. /*===========================================================================*/
  23. /* Internal methods */
  24. /*===========================================================================*/
  25. /* note that we override values because the document for the Irish grid
  26.    has values which do not match the ones calculated from their own formulae
  27.    and constants:
  28.  
  29.                 eSqrd                   n
  30.     calculated    0.006670540605897831814    0.001673220462817007959
  31.     book        0.00667054015           0.001673220462
  32. */
  33.  
  34. static id theOldIrishGrid = nil;
  35.  
  36. + makeGrid
  37.   {
  38.     if (!theOldIrishGrid)
  39.     {theOldIrishGrid = [[MiscUTMConstants allocFromZone: [self zone]]
  40.                initGridName: "Old Irish Grid"
  41.              trueOrigin: 53.5 : -8.0
  42.                  inGrid: 200000.0    : 250000.0
  43.                onSphere: 6377340.189 : 6356034.446
  44.          centralMeridianScaling: 1.000035];
  45.  
  46.      [theOldIrishGrid override_eSqrd: 0.00667054015 n: 0.001673220462];
  47.      [theOldIrishGrid setProtected];
  48.     }
  49.     return theOldIrishGrid;
  50.   }
  51.  
  52.  
  53. /*===========================================================================*/
  54. /* Initialization methods. If we don't already have a UTM constants object
  55.    for the Old Irish Grid, create one instance that all will share and that
  56.    cannot be deleted.
  57.  
  58.    Values are from the Irish Ordinance Survey document, "Tables for the
  59.    Transverse Mercator Projection of Ireland", 1953, reprinted 1971.
  60.  
  61. */
  62. /*===========================================================================*/
  63. /* DESIGNATED INITIALIZER */
  64.  
  65. -initDescription: (char *) txt
  66.  {
  67.     [super initDescription: txt constants: [MiscIrelandOldUTMCoord makeGrid]];
  68.  
  69.     /* over ride the standard converter */
  70.     converter = [MiscIrelandCoordConverter new];
  71.     return self;
  72.  }
  73.  
  74.  
  75. /*---------------------------------------------------------------------------*/
  76. /* Block the designated initializer of our parent class */
  77.  
  78. -initDescription: (char *) txt constants: anObject
  79.  {    [self error:"  %s class should not be sent '%s' messages\n",
  80.             [[self class] name], sel_getName(_cmd)];
  81.     return self;
  82.  }
  83.  
  84.  
  85. /*===========================================================================*/
  86. /* Archive methods */
  87. /*===========================================================================*/
  88. - awake
  89. {    [super awake];
  90.     [constants setUnprotected];
  91.     [constants free];
  92.     [MiscIrelandOldUTMCoord makeGrid];
  93.     return self;
  94. }
  95.  
  96. @end
  97.